/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.its.dsw2.vista;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.its.dsw2.biblioteca.Bl.AutorBlLocal;
import mx.its.dsw2.biblioteca.Bl.CategoriaBlLocal;
import mx.its.dsw2.biblioteca.Bl.LibroBlLocal;
import mx.its.dsw2.biblioteca.Modelo.Categoria;
import mx.its.dsw2.biblioteca.Modelo.Libro;

/**
 *
 * @author Yessy
 */
@ManagedBean
@SessionScoped
public class BookBean {

    @EJB
    private CategoriaBlLocal categoriaBl;
    @EJB
    private AutorBlLocal autorBl;
    @EJB
    private LibroBlLocal libroBl;
    
    private List<Categoria> listacategoria;
    private List<Libro> lista;
    private Libro book;
    private int autorSeleccionado;
    private int categoriaSeleccionada;
    private String accion;

    /**
     * Creates a new instance of BookBean
     */
    public BookBean() {
        book = new Libro();
    }
    //Get & set

    public List<Categoria> getListacategoria() {
//falta terminar
        // listacategoria = categoriaBl.getAll();
        return listacategoria;
    }

    public Libro getBook() {
        return book;
    }

    public void setBook(Libro book) {
        this.book = book;
    }

    public int getAutorSeleccionado() {
        return autorSeleccionado;
    }

    public void setAutorSeleccionado(int autorSeleccionado) {
        this.autorSeleccionado = autorSeleccionado;
    }

    public int getCategoriaSeleccionada() {
        return categoriaSeleccionada;
    }

    public void setCategoriaSeleccionada(int categoriaSeleccionada) {
        this.categoriaSeleccionada = categoriaSeleccionada;
    }

    public List<Libro> getLista() {
        lista = libroBl.getAll();
        return lista;
    }

    //*****Acciones****
    public String procesarSeleccion() {
        book.setIdAutor(autorBl.findId(autorSeleccionado));
//        listacategoria.add(categoriaBl.findId(categoriaSeleccionada));

        return "LibroConfirmar";

    }

    public String procesarAccion() {
        if (accion.equalsIgnoreCase("Nuevo")) {
            System.out.println("gffggffggf" + listacategoria.toString());
            libroBl.register(book, listacategoria);
        } else if (accion.equalsIgnoreCase("Editar")) {
            libroBl.modify(book, listacategoria);
        } else if (accion.equalsIgnoreCase("Eliminar")) {
            libroBl.delete(book);
        }
        accion = "";
        return "LibroLista";
    }

    public void prepararNuevoRegistro(ActionEvent evt) {
        listacategoria = new ArrayList<Categoria>();
        accion = "Nuevo";
        book = new Libro();
    }

    public void prepararEditar(ActionEvent evt) {
        accion = "Editar";
        System.out.println(evt.getComponent().getClientId());
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        listacategoria=categoriaBl.getListByBook(book);
        book = lista.get(index);
    }

    public void prepararEliminar(ActionEvent evt) {
        accion = "Eliminar";
        System.out.println(evt.getComponent().getClientId());
        int index = Integer.parseInt(evt.getComponent().getClientId().split(":")[2]);
        book = lista.get(index);

    }

    public void agregarCategoria(ActionEvent evt) {
        if(!listacategoria.contains(categoriaBl.findId(categoriaSeleccionada))){
        listacategoria.add(categoriaBl.findId(categoriaSeleccionada));    
        }else{
            
        }  
    }
    //Listerners
}
